package com.proyecto.core.vista.echo.componentes;

import java.util.Date;
import java.util.EventListener;
import java.util.ResourceBundle;

import nextapp.echo2.app.Alignment;
import nextapp.echo2.app.ApplicationInstance;
import nextapp.echo2.app.Border;
import nextapp.echo2.app.Button;
import nextapp.echo2.app.Color;
import nextapp.echo2.app.Column;
import nextapp.echo2.app.ContentPane;
import nextapp.echo2.app.Extent;
import nextapp.echo2.app.Font;
import nextapp.echo2.app.Insets;
import nextapp.echo2.app.ResourceImageReference;
import nextapp.echo2.app.Row;
import nextapp.echo2.app.TextField;
import nextapp.echo2.app.WindowPane;
import nextapp.echo2.app.event.ActionEvent;
import nextapp.echo2.app.event.ActionListener;
import nextapp.echo2.app.layout.ColumnLayoutData;
import nextapp.echo2.app.layout.RowLayoutData;
import nextapp.echo2.extras.app.CalendarSelect;
import nextapp.echo2.webcontainer.command.BrowserOpenWindowCommand;

import com.proyecto.core.Utilidades.ObtenerFecha;
import com.proyecto.core.modelo.echo.constantes.ParametrosIniciales;
import com.proyecto.core.vista.echo.base.BotonInfoSistema;

@SuppressWarnings("serial")
public class WPFecha extends WindowPane {

	private ResourceBundle resourceBundle;
	private CalendarSelect Calendario;
	private String fecha = "";
	private BotonInfoSistema btnInfoSistema;
	private Row rowMensaje;
	private TextField mensaje;
	protected ApplicationInstance ai = ApplicationInstance.getActive();	

	private ActionListener ListenerBotonInfoSistema = new ActionListener(){
		public void actionPerformed(ActionEvent e) {
			ai.enqueueCommand(new BrowserOpenWindowCommand("ayudasOnline/"+btnInfoSistema.getCp()+"/"+btnInfoSistema.getCp()+".htm", "Ayuda", "width=500,height=350"));
        }
	};
	
	public WPFecha() {
		super();
		initComponents();
		Calendario.setDate(ObtenerFecha.ObtenerFechaSistemaFormatoSQL());
		this.setModal(true);
		this.setResizable(false);
		btnInfoSistema.inicializar(this.getClass().getName(),this.getClass().getSimpleName(),"");
		btnInfoSistema.addActionListener(ListenerBotonInfoSistema);
	}
	
	public void addActionListener(ActionListener l) {
        getEventListenerList().addListener(ActionListener.class, l);
    }
	
	private void CapturarFecha(ActionEvent e) {
		Date f =Calendario.getDate();
		switch (ParametrosIniciales.FECHA_MOSTRAR) {
		case 1:
			fecha = ObtenerFecha.yyyymmddSqlSeparadoConSlash(f);
			break;
		case 2:
			fecha = ObtenerFecha.ddmmyyyySqlSeparadoConSlash(f);
			break;
		default:
			fecha = ObtenerFecha.yyyymmddSqlSeparadoConSlash(f);
			break;
		}
	    getParent().remove(WPFecha.this);
	    EventListener listener = getEventListenerList().getListeners(ActionListener.class)[0];
	    ActionEvent outgoingEvent = new ActionEvent(this, fecha);
	    ((ActionListener) listener).actionPerformed(outgoingEvent);
	}

	public TextField getMensaje() {
		return mensaje;
	}

	public void setMensaje(TextField mensaje) {
		this.mensaje = mensaje;
	}

	/**
	 * Configures initial state of component.
	 * WARNING: AUTO-GENERATED METHOD.
	 * Contents will be overwritten.
	 */
	private void initComponents() {
		resourceBundle = ResourceBundle.getBundle(
				"com.proyecto.core.vista.echo.resource.localization.etiquetas",
				ApplicationInstance.getActive().getLocale());
		this.setWidth(new Extent(240, Extent.PX));
		this.setHeight(new Extent(270, Extent.PX));
		this.setStyleName("DefaultWPFechaCalendario");
		ContentPane contentPane1 = new ContentPane();
		add(contentPane1);
		Column column1 = new Column();
		column1
				.setInsets(new Insets(new Extent(10, Extent.PX), new Extent(0,
						Extent.PX), new Extent(10, Extent.PX), new Extent(0,
						Extent.PX)));
		contentPane1.add(column1);
		rowMensaje = new Row();
		column1.add(rowMensaje);
		mensaje = new TextField();
		mensaje.setEnabled(false);
		mensaje.setStyleName("2OpenLabs.TextField.Descripcion");
		mensaje.setFont(new Font(null, Font.BOLD, new Extent(10, Extent.PT)));
		rowMensaje.add(mensaje);
		Row row1 = new Row();
		ColumnLayoutData row1LayoutData = new ColumnLayoutData();
		row1LayoutData.setAlignment(new Alignment(Alignment.CENTER,
				Alignment.DEFAULT));
		row1.setLayoutData(row1LayoutData);
		column1.add(row1);
		Calendario = new CalendarSelect();
		Calendario.setSelectedDateBackground(Color.BLACK);
		Calendario.setBorder(new Border(new Extent(1, Extent.PX), Color.WHITE,
				Border.STYLE_SOLID));
		RowLayoutData CalendarioLayoutData = new RowLayoutData();
		CalendarioLayoutData.setInsets(new Insets(new Extent(0, Extent.PX),
				new Extent(15, Extent.PX), new Extent(0, Extent.PX),
				new Extent(0, Extent.PX)));
		CalendarioLayoutData.setAlignment(new Alignment(Alignment.CENTER,
				Alignment.DEFAULT));
		Calendario.setLayoutData(CalendarioLayoutData);
		row1.add(Calendario);
		Row row3 = new Row();
		row3
				.setInsets(new Insets(new Extent(0, Extent.PX), new Extent(20,
						Extent.PX), new Extent(0, Extent.PX), new Extent(0,
						Extent.PX)));
		row3.setStyleName("2OpenLabs.Row.Separador");
		column1.add(row3);
		Row row2 = new Row();
		row2.setStyleName("2OpenLabs.Row.BotoneraInterna");
		column1.add(row2);
		Button button1 = new Button();
		button1.setText(resourceBundle
				.getString("CoreVista.base.RowBotonera.Aceptar"));
		ResourceImageReference imageReference1 = new ResourceImageReference(
				"/com/proyecto/core/vista/echo/resource/image/icon/general/Iconos/accept.png");
		button1.setIcon(imageReference1);
		button1
				.setAlignment(new Alignment(Alignment.CENTER, Alignment.DEFAULT));
		button1.setToolTipText(resourceBundle
				.getString("CoreVista.base.RowBotonera.Aceptar"));
		button1.setStyleName("2OpenLabs.Button.Transaccion");
		RowLayoutData button1LayoutData = new RowLayoutData();
		button1LayoutData.setInsets(new Insets(new Extent(20, Extent.PX),
				new Extent(0, Extent.PX)));
		button1.setLayoutData(button1LayoutData);
		button1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				CapturarFecha(e);
			}
		});
		row2.add(button1);
		btnInfoSistema = new BotonInfoSistema();
		btnInfoSistema.setStyleName("2OpenLabs.Button.Informacion");
		row2.add(btnInfoSistema);
	}
}
